
//console.log('window.location.search='+window.location.search);
//console.log(getParameterTwo("hid"));
var hid=getParameterTwo("hid");

//console.log('address='+getParameterTwo("h_name"));

var h_name=unescape(getParameterTwo("h_name"));
var address=unescape(getParameterTwo("address"));
var region_name=unescape(getParameterTwo("region_name"));
var user=getUserEntityFromCache();
var ak="VaGER73ysIddqcFV6iSLlXoNQeWfGeWp";
var geo_api="http://api.map.baidu.com/geocoder/v2/";
var latitude=0.00;
var longitude=0.00;
var map;



// 定义自定义覆盖物的构造函数
function SquareOverlay(center, title){
    this._center = center;
    this._title = title;
}

getSign();
$(function () {
    addEvent();
    init();
    getHouseLocation();

    if(parseInt(hid)==0){
        user.clearUserInfoCache();
        alert("清除成功");
    }
});

function addEvent() {
    $.subscribe("loaded_location",loadMap);

    $("#map_tab li").click(function () {
        $("#map_tab li").removeClass("on");
        $(this).addClass("on");
        searchLocalServer($(this).find("span").eq(1).text());
    });
}

function getUserEntityFromCache(){
    var user=new User("","","","",0,0,0,'');
    if(window.localStorage){
        if(is_debug){
            // user=new User("oAnxN0SVrDe9OxuKRSmmHSpxg92s","18721886115","Vivi","http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIlCa0fwksPMXsRBvgzHQ7szrNKE9A4mZjm9v8cJDsTQDedib0xsMlzgkrGeORq0Q8IGsIdspJ9m1Q/0","11",'1','','');
            user=new User("oAnxN0SVrDe9OxuKRSmmHSpxg92s","18721886115","Vivi","http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIlCa0fwksPMXsRBvgzHQ7szrNKE9A4mZjm9v8cJDsTQDedib0xsMlzgkrGeORq0Q8IGsIdspJ9m1Q/132","11",'0','0','0');

        }
        else {
            user=new User(localStorage.getItem("openid"),localStorage.getItem("mobile"),localStorage.getItem("nickname"),localStorage.getItem("avatar"),localStorage.getItem("uid"),localStorage.getItem("role"),localStorage.getItem("referee"),localStorage.getItem("parent_code"));
        }
    }
    return user;
}

function init() {
    initMapOverlay();
    initMap();
}

function initMapOverlay() {
    // 继承API的BMap.Overlay
    SquareOverlay.prototype = new BMap.Overlay();

    // 实现初始化方法
    SquareOverlay.prototype.initialize = function(map){
        // 保存map对象实例
        this._map = map;
        // 创建div元素，作为自定义覆盖物的容器
        var div = document.createElement("div");
        div.style.position = "absolute";
        // 可以根据参数设置元素外观
        div.id="house_name"
        div.innerText=this._title;
        // 将div添加到覆盖物容器中
        map.getPanes().markerPane.appendChild(div);
        // 保存div实例
        this._div = div;
        // 需要将div元素作为方法的返回值，当调用该覆盖物的show、
        // hide方法，或者对覆盖物进行移除时，API都将操作此元素。
        return div;
    }

    // 实现绘制方法
    SquareOverlay.prototype.draw = function(){
// 根据地理坐标转换为像素坐标，并设置给容器
        var position = this._map.pointToOverlayPixel(this._center);
        this._div.style.left = position.x -60 + "px";
        this._div.style.top = position.y -20 + "px";
    }

    // 实现显示方法
    SquareOverlay.prototype.show = function(){
        if (this._div){
            this._div.style.display = "";
        }
    }
// 实现隐藏方法
    SquareOverlay.prototype.hide = function(){
        if (this._div){
            this._div.style.display = "none";
        }
    }

    // 添加自定义方法
    SquareOverlay.prototype.toggle = function(){
        if (this._div){
            if (this._div.style.display == ""){
                this.hide();
            }
            else {
                this.show();
            }
        }
    }
}

function initMap() {
    map = new BMap.Map("container");
    map.addControl(new BMap.NavigationControl());
    // 创建地图实例
    var point = new BMap.Point(121.479389, 31.235682);
    // 创建点坐标
    map.centerAndZoom(point, 15);
}

function loadMap() {
    var point = new BMap.Point(longitude, latitude);
    map.panTo(point);

    // var marker = new BMap.Marker(point);        // 创建标注
    // marker.title="提示信息";
    // marker.enableDragging=true;
    // map.addOverlay(marker);// 将标注添加到地图中
    //
    // marker.addEventListener("click", function(){
    //     var opts = {
    //         width : 220,     // 信息窗口宽度
    //         height: 80,     // 信息窗口高度
    //         title : "公交站台  <a href='http://baidu.com' target='_blank'>详情>></a>"  // 信息窗口标题
    //     }
    //     var infoWindow = new BMap.InfoWindow("车次：南龙转系三", opts);  // 创建信息窗口对象
    //     map.openInfoWindow(infoWindow, map.getCenter());      // 打开信息窗口
    // });

    addHousePanel();

    $("#map_tab li").eq(0).trigger("click");
}

function addHousePanel() {
    // 添加自定义覆盖物
    var point = new BMap.Point(longitude, latitude);
    var mySquare = new SquareOverlay(point, h_name);
    map.addOverlay(mySquare);
    map.panTo(point);
}

function searchLocalServer(key) {
    map.clearOverlays();
    addHousePanel();

    var local = new BMap.LocalSearch(map,
        {
            renderOptions:{map: map},
            pageCapacity: 8
        });
    local.disableAutoViewport();
    local.disableFirstResultSelection();
    local.searchInBounds(key, map.getBounds());

}

function getHouseLocation(type) {
    var key="";
    if(type=="address"){
        key=address;
    }
    else {
        key=region_name+" "+h_name;
    }

    $.ajax({
        type: "get",
        async: false,
        url: geo_api,
        data:{address:key,ak:ak,output:'json'},
        dataType: "jsonp",
        jsonp: "callback",//传递给请求处理程序或页面的，用以获得jsonp回调函数名的参数名(一般默认为:callback)
        jsonpCallback:"showLocation",//自定义的jsonp回调函数名称，默认为jQuery自动生成的随机函数名，也可以写"?"，jQuery会自动为你处理数据
        beforeSend:function(){
            showLoading();
        },
        success: function(data){

            if(data.status=="0") {
                if (data.result != null && data.result.location != null && data.result.location  != undefined) {
                    if(type!="address"){
                        if(data.result.level=="地产小区"){
                            hideLoading();
                            longitude=data.result.location.lng;
                            latitude=data.result.location.lat;
                            $.publish("loaded_location");

                        }
                        else {
                            getHouseLocation("address");
                        }
                    }
                    else {
                        hideLoading();
                        longitude=data.result.location.lng;
                        latitude=data.result.location.lat;
                        $.publish("loaded_location");
                    }
                }
            }
            else {
                hideLoading();
                showAlert(data.msg);
            }
        },
        error: function(){
            hideLoading();
            alert("获取定位信息获取失败");
        }
    });
}

function getSign(){
    $.ajax({
        type: "get",
        url: "/v1/wx-user/get-sign",
        data: {noncestr:noncestr, timestamp:timeStamp,url:window.location.href},
        dataType: "json",
        beforeSend:function(){

        },
        success: function(data){
            if(data.code=="success") {
                if (data.data != null && data.data.sign != null && data.data.sign != undefined) {
                    initWXConfig(data.data.sign);
                }
            }
            else {
                alert(data.err_msg);
            }
        },
        error: function(){
        }
    });
}


function initWXConfig(signature){
    wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: appId, // 必填，公众号的唯一标识，aa3ecfe3da55ba39e817d6f19f70725d
        timestamp: timeStamp, // 必填，生成签名的时间戳
        nonceStr: noncestr, // 必填，生成签名的随机串
        signature: signature,// 必填，签名，见附录1
        jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','previewImage'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
    });

    wx.ready(function(){
        initWXShare();
        // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
    });

    wx.error(function(res){
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
    });

    wx.checkJsApi({
        jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
        success: function(res) {
            // 以键值对的形式返回，可用的api值true，不可用为false
            // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        }
    });

}

function initWXShare() {
    var share_title="";
    var share_des="";
    var share_link="";
    var share_icon="";

    share_title=house_share_text;
    share_des="";
    share_link=window.location.href;
    share_icon="http://pocket.all-star.top/images/logo_small.jpg";

    wx.onMenuShareAppMessage({
        title: share_title, // 分享标题 $(".house_name").text()+"-"+
        desc: share_des, // 分享描述
        link: share_link,
        imgUrl: share_icon,
        type: '', // 分享类型,music、video或link，不填默认为link
        dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    wx.onMenuShareTimeline({
        title: $(".house_name").text()+"-"+share_title, // 分享标题
        link:share_link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: share_icon, // 分享图标
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
}

// if(hid==0){
//     user.clearUserInfoCache();
//     alert("清除成功");
// }